/*
 * 页面主入口，负责模块拼装
 */
require( '$d/css/common.less' );
require( './style.less' );
define( [
  'require',
  'jquery',
  'bootstrap',
  'header',
  'bigwe_utils',
  'message',
  'constants',
  'api',
  'login',
  // 以下是属于 本页面的模块
  './lib/utils', // 一些复用的方法
  './lib/editData', // 正在编辑的数据对象
  './modules/createEditor', // 创建编辑器
  './modules/pageEvent', // 页面整体事件绑定
  './collect/dialogsLoader', // 弹框的加载器
  './collect/grapManage', // 图文管理 最右侧第三列
  './collect/editorCollect', // 编辑器管理  中间列
  './collect/tabMaterialCollect', // 最左侧素材列
  './modules/phonePreview' // 模拟手机预览
], function( require, $ ) {

  // 依赖注入
  var c = require( 'constants' );
  var bu = require( 'bigwe_utils' );
  var uts = require( './lib/utils' );
  var login = require( 'login' );
  var header = require( 'header' );
  var editData = require( './lib/editData' );
  var editorObj = require( './modules/createEditor' );
  var ShowTitleMessage = require( 'message' );

  // 既存变量容错
  var md5 = bu.md5;
  var showTime = ShowTitleMessage.showTime;
  var img02Store = c.img02Store;
  var GraphBuild = uts;
  var EditorAbout = uts;
  var articleBean = uts.articleBean;
  var tagsMaxCharLenth = c.tagsMaxCharLenth;
  var articleObjTransition = uts.articleObjTransition;

  // 添加登录成功的回调
  login.addLoginCallback( function() {
    $( '#cover-upload' ).removeClass( 'hide' ).next().remove();
  } );

  //header.$selector.keepOn();

  // 基本已废弃的代码
  var EditText = {
    init: function() {
      this._modalControl();
      this._editorControll();
    },
    variable: editData,
    // 编辑器控制
    _editorControll: function() {

    },
    // 各种模态框控制
    _modalControl: function() {
      var $superThis = this;
      var _modalModule = {
        _loadAll: function() {
          this.__articleChoose().__saveAsFormwork().__articleEditDetails().__tageEdit().__pictureChoose().__leaveConfirm();
        },
        // 图片素材选择
        __pictureChoose: function() {

          return this;
        },
        // 标签编辑modal
        __tageEdit: function() {
          var $tagUpdate = $( "#tag-update" );

          // 热门标签点击
          $( ".hottag-list-div", $tagUpdate ).on( 'click', 'button', function() {
            if ( $( this ).hasClass( 'selected' ) ) {
              $( this ).removeClass( 'selected' );
              var dataId = $( this ).attr( 'data-id' );
              if ( dataId ) {
                $( ".tag-list-div>button[data-id='" + dataId + "']" ).remove();
              }
            } else {
              if ( $( '.tag-list-div>button' ).length >= 5 ) {
                ShowTitleMessage.showWarning( '最多能添加五个标签', showTime );
                return;
              }
              $( this ).addClass( 'selected' );
              var html = $( this ).prop( "outerHTML" );
              $( '#tag-list-div' ).append( html );
            }
          } );

          // 点击已添加的标签
          $( '.tag-list-div', $tagUpdate ).on( 'click', 'button', function() {
            $( this ).remove();
            var dataId = $( this ).attr( 'data-id' );
            if ( dataId ) {
              $( ".hottag-list-div>button[data-id='" + dataId + "']" ).removeClass( 'selected' );
            }
          } );

          // 添加标签按钮确定
          $( "#addtag-btn", $tagUpdate ).click( function() {
            var val = $.trim( $( '.inp-tagval' ).val() );
            if ( /^\s*$/.test( val ) ) {
              ShowTitleMessage.show( '不能添加空白标签', showTime ).css( 'background-color', waringColor );
            } else {
              if ( $( '.tag-list-div>button' ).length >= 5 ) {
                ShowTitleMessage.showWarning( '最多能添加五个标签', showTime );
                return;
              }
              $( '#tag-list-div' ).append( '<button type="button">' + val + '</button>' );
              $( '.inp-tagval' ).val( '' );
              $( '.inp-tagval' ).focus();
            }
          } );

          // 修改标签确认
          $( '#doupdate-tag', $tagUpdate ).click( function() {
            var html = '';
            $( '#tag-list-div>button' ).each( function() {
              var dataId = $( this ).attr( 'data-id' ) ? $( this ).attr( 'data-id' ) : '';
              html += '<div class="cate-tag-btnOrDiv" data-id="' + dataId + '">' + $( this ).text() + '</div>';
            } );
            $( '.tags-div-right>.content' ).html( html );
            $tagUpdate.modal( 'hide' );
          } );
          return this;
        },
        // 选择文章
        __articleChoose: function() {
          var $superThis = this;

          return this;
        },
        // 存为模板
        __saveAsFormwork: function() {
          var $fromworkModal = $( "#save_formwork" );
          /**
           * 保存模板的字数统计
           */
          $( '#save_template_name', $fromworkModal ).keyup( function() {
            $( this ).next( "span" ).find( "span" ).text( $( '#save_template_name' ).val().length );
          } );

          // 保存模板确认
          $( '#save_template', $fromworkModal ).click( function() {
            // TODO
          } );
          return this;
        },
        // 离开保存提示
        __leaveConfirm: function() {
          return this;
        },
        // 各种文章编辑
        __articleEditDetails: function() {
          return this;
        }
      };
      _modalModule._loadAll();
    },
  };

  EditText.init();



} );
